<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   [投稿]spark1.6+hadoop2.6集群HA搭建与参数解析  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://dataunion.org/23402.html",
                  host: "http://dataunion.org",
                  prePath: "http://dataunion.org",
                  scheme: "http",
                  pathBase: "http://dataunion.org/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466460672: Accept with keywords: (title(0.571428571429):投稿,数盟,hadoop,参数,集群,spark,社区, topn(0.4):路径,Hadoop,信息,编译,任务,内存,目录,文件,hadoop,模式,数量,参数,文章,服务器,Spark,数据,节点,投稿,字节,状态,数盟,地址,磁盘,spark,客户端,编程语言,故障,端口,调度,集群).-->
 </head>
 <body onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    [投稿]spark1.6+hadoop2.6集群HA搭建与参数解析
   </h1>
  </div>
  <div class="container" id="xmain">
   ﻿﻿
   <title>
    [投稿]spark1.6+hadoop2.6集群HA搭建与参数解析 | 数盟社区
   </title>
   <!-- All in One SEO Pack 2.2.7.6.2 by Michael Torbert of Semper Fi Web Design[32,80] -->
   <!-- /all in one seo pack -->
   <!--
<div align="center">
<a href="http://strata.oreilly.com.cn/hadoop-big-data-cn?cmp=mp-data-confreg-home-stcn16_dataunion_pc" target="_blank"><img src="http://dataunion.org/wp-content/uploads/2016/05/stratabj.jpg"/ ></a>
</div>
-->
   <header id="header-web">
    <div class="header-main">
     <hgroup class="logo">
      <h1>
       <a href="http://dataunion.org/" rel="home" title="数盟社区">
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/logo.png"/>
       </a>
      </h1>
     </hgroup>
     <!--logo-->
     <nav class="header-nav">
      <ul class="menu" id="menu-%e4%b8%bb%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-71" id="menu-item-71">
        <a href="http://dataunion.org/category/events" title="events">
         活动
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22457" id="menu-item-22457">
          <a href="http://dataunion.org/2016timeline">
           2016档期
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22459" id="menu-item-22459">
          <a href="http://dataunion.org/category/parterc">
           合作会议
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor menu-item-has-children menu-item-20869" id="menu-item-20869">
        <a href="http://dataunion.org/category/tech" title="articles">
         文章
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20867" id="menu-item-20867">
          <a href="http://dataunion.org/category/tech/base" title="base">
           基础架构
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3302" id="menu-item-3302">
          <a href="http://dataunion.org/category/tech/ai" title="ai">
           人工智能
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3303" id="menu-item-3303">
          <a href="http://dataunion.org/category/tech/analysis" title="analysis">
           数据分析
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21920" id="menu-item-21920">
          <a href="http://dataunion.org/category/tech/dm">
           数据挖掘
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3314" id="menu-item-3314">
          <a href="http://dataunion.org/category/tech/viz" title="viz">
           可视化
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-3305" id="menu-item-3305">
          <a href="http://dataunion.org/category/tech/devl" title="devl">
           编程语言
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-20876" id="menu-item-20876">
        <a href="http://dataunion.org/category/industry">
         行业
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-16328" id="menu-item-16328">
          <a href="http://dataunion.org/category/industry/case" title="case">
           行业应用
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2112" id="menu-item-2112">
          <a href="http://dataunion.org/category/industry/demo" title="demo">
           Demo展示
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21562" id="menu-item-21562">
          <a href="http://dataunion.org/category/industry/news">
           行业资讯
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-311" id="menu-item-311">
        <a href="http://dataunion.org/category/sources" title="sources">
         资源
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20870" id="menu-item-20870">
        <a href="http://dataunion.org/category/books" title="book">
         图书
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21363" id="menu-item-21363">
        <a href="http://dataunion.org/category/training">
         课程
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-21853" id="menu-item-21853">
        <a href="http://dataunion.org/category/jobs">
         职位
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22050" id="menu-item-22050">
          <a href="http://dataunion.org/category/career">
           职业规划
          </a>
         </li>
        </ul>
       </li>
      </ul>
     </nav>
     <!--header-nav-->
    </div>
   </header>
   <!--header-web-->
   <div id="main">
    <div id="soutab">
     <form action="http://dataunion.org/" class="search" method="get">
     </form>
    </div>
    <div id="container">
     <nav id="mbx">
      当前位置：
      <a href="http://dataunion.org">
       首页
      </a>
      &gt;
      <a href="http://dataunion.org/category/tech">
       文章
      </a>
      &gt;
      <a href="http://dataunion.org/category/tech/devl">
       编程语言
      </a>
      &gt;  正文
     </nav>
     <!--mbx-->
     <article class="content">
      <header align="centre" class="contenttitle">
       <div class="mscc">
        <h1 class="mscctitle">
         <a href="http://dataunion.org/23402.html">
          [投稿]spark1.6+hadoop2.6集群HA搭建与参数解析
         </a>
        </h1>
        <address class="msccaddress ">
         <em>
          1,050 次阅读 -
         </em>
         <a href="http://dataunion.org/category/tech/devl" rel="category tag">
          编程语言
         </a>
        </address>
       </div>
      </header>
      <div class="content-text">
       <p>
        作者简介：杨思义，男，26岁，2015年6月毕业于山东大学齐鲁软件学院，工程硕士学位。
       </p>
       <p>
        2014年6月至今工作于北京亚信智慧数据科技有限公司 BDX大数据事业部，从2014年9月开始从事项目spark相关应用开发。
       </p>
       <p>
        废话就不多说了，直接开始啦~
       </p>
       <h2>
        安装环境变量:
       </h2>
       <p>
        使用linx下的解压软件,解压找到里面的install 或者 ls 运行这个进行安装
       </p>
       <p>
        yum install gcc
       </p>
       <p>
        yum install gcc-c++
       </p>
       <p>
       </p>
       <p>
        安装make，这个是自动编译源码的工具
       </p>
       <p>
        yum install make
       </p>
       <p>
        yum install autoconfautomake libtool cmake
       </p>
       <p>
       </p>
       <p>
        封装了底层的终端功能
       </p>
       <p>
        yum install ncurses-devel
       </p>
       <p>
       </p>
       <p>
        <em>
         OpenSSL
        </em>
        是一个软件包，用于支持SSL传输协议的软件包
       </p>
       <p>
        yum install openssl-devel
       </p>
       <p>
       </p>
       <p>
        git就不用多说了
       </p>
       <p>
        yum install git git-svn git-email git-gui gitk
       </p>
       <p>
       </p>
       <p>
        安装protoc(需用root用户), 作用是把某种数据结构的信息，以某种格式保存起来。主要用于数据存储、传输协议格式等
       </p>
       <p>
        1 tar -xvf protobuf-2.5.0.tar.bz2
       </p>
       <p>
        2 cd protobuf-2.5.0
       </p>
       <p>
        3 ./configure –prefix=/opt/protoc/
       </p>
       <p>
        4 make &amp;&amp; make install
       </p>
       <p>
        安装wget (以后备用~)
       </p>
       <p>
        sudo yum -y install wget
       </p>
       <p>
       </p>
       <p>
       </p>
       <h2>
        二、增加用户组
       </h2>
       <p>
        groupadd hadoop  添加一个组
       </p>
       <p>
        useradd hadoop -g hadoop  添加用户
       </p>
       <p>
       </p>
       <p>
       </p>
       <h2>
        三、编译hadoop
       </h2>
       <p>
        mvn clean package -Pdist,native -DskipTests -Dtar
       </p>
       <p>
        编译完的hadoop在 /home/hadoop/ocdc/hadoop-2.6.0-src/hadoop-dist/target 路径下
       </p>
       <p>
       </p>
       <p>
       </p>
       <h2>
        四、各节点配置hosts文件 vi/etc/hosts
       </h2>
       <p>
        10.1.245.244 master
       </p>
       <p>
        10.1.245.243 slave1
       </p>
       <p>
        10.1.245.242 slave2
       </p>
       <p>
        命令行输入 hostname master
       </p>
       <p>
       </p>
       <p>
        ssh到其他主机 相应输入 hostName xxxx
       </p>
       <p>
       </p>
       <p>
       </p>
       <h2>
        五、各节点免密码登录：
       </h2>
       <p>
       </p>
       <p>
        各节点 免密码登录
       </p>
       <p>
        ssh-keygen -t rsa
       </p>
       <p>
        cd /root/.ssh/
       </p>
       <p>
        ssh-copy-id master
       </p>
       <p>
        将生成的公钥id_rsa.pub 内容追加到authorized_keys（执行命令：cat id_rsa.pub &gt;&gt; authorized_keys）
       </p>
       <p>
       </p>
       <p>
        时间等效性同步
       </p>
       <p>
        ssh master date; ssh slave1 date;ssh slave2 date;
       </p>
       <p>
       </p>
       <h2>
        六、hadoop路径下创建相应目录（namenode,datenode 等信息存放处）
       </h2>
       <p>
        Mkdir data
       </p>
       <p>
        (在data路径下创建目录)
       </p>
       <p>
        mkdir yarn
       </p>
       <p>
        mkdir jn
       </p>
       <p>
        mkdir current
       </p>
       <p>
        (hadoop路径下)
       </p>
       <p>
        mkdir name
       </p>
       <p>
       </p>
       <p>
        (jn目录下)
       </p>
       <p>
        mkdir streamcluster
       </p>
       <p>
       </p>
       <p>
       </p>
       <h2>
        七、Zookeeper集群配置:
       </h2>
       <p>
        解压zookeeper
       </p>
       <p>
        Tar zxvf zookeeper-3.4.6.tar.gz
       </p>
       <p>
       </p>
       <p>
        修改temp文件为可用
       </p>
       <p>
        Cp zoo_sample.cfg  zoo.cfg
       </p>
       <p>
       </p>
       <p>
        修改zoo.cfg文件:
       </p>
       <p>
        # The number of milliseconds of each tick
       </p>
       <p>
        tickTime=2000
       </p>
       <p>
        # The number of ticks that the initial
       </p>
       <p>
        # synchronization phase can take
       </p>
       <p>
        initLimit=10
       </p>
       <p>
        # The number of ticks that can pass between
       </p>
       <p>
        # sending a request and getting an acknowledgement
       </p>
       <p>
        syncLimit=5
       </p>
       <p>
        # the directory where the snapshot is stored.
       </p>
       <p>
        # do not use /tmp for storage, /tmp here is just
       </p>
       <p>
        # example sakes.
       </p>
       <p>
        dataDir=/home/hadoop/ocdc/zookeeper-3.4.6/data
       </p>
       <p>
        dataLogDir=/home/hadoop/ocdc/zookeeper-3.4.6/logs
       </p>
       <p>
        # the port at which the clients will connect
       </p>
       <p>
        clientPort=2183
       </p>
       <p>
        # the maximum number of client connections.
       </p>
       <p>
        # increase this if you need to handle more clients
       </p>
       <p>
        #maxClientCnxns=60
       </p>
       <p>
        #
       </p>
       <p>
        # Be sure to read the maintenance section of the
       </p>
       <p>
        # administrator guide before turning on autopurge.
       </p>
       <p>
        #
       </p>
       <p>
        # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
       </p>
       <p>
        #
       </p>
       <p>
        # The number of snapshots to retain in dataDir
       </p>
       <p>
        #autopurge.snapRetainCount=3
       </p>
       <p>
        # Purge task interval in hours
       </p>
       <p>
        # Set to “0” to disable auto purge feature
       </p>
       <p>
        #autopurge.purgeInterval=1
       </p>
       <p>
       </p>
       <p>
        #写入节点ip与端口
       </p>
       <p>
        server.1=master:2898:3898
       </p>
       <p>
        server.2=slave1:2898:3898
       </p>
       <p>
        server.3=slave2:2898:3898
       </p>
       <p>
       </p>
       <p>
        在zookeeper目录下:
       </p>
       <p>
        mkdir data
       </p>
       <p>
        vi myid （写入id为1,）
       </p>
       <p>
        拷贝zookeeper到各个目录下（将slave1中的myid改为2，slave2中的myid改为3….）
       </p>
       <p>
        随后在 bin目录下 逐个启动zookeeper
       </p>
       <p>
        ./zkServer.sh start
       </p>
       <p>
        ./zkServer.sh status (查看状态)
       </p>
       <p>
       </p>
       <h2>
        八、hadoop相关配置文件及参数说明
       </h2>
       <h3>
        core-site.xml
       </h3>
       <p>
        默认文件系统的名称,如果是HA模式，不加端口
       </p>
       <p>
        &lt;configuration&gt;
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;fs.defaultFS&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;hdfs:// streamcluster &lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        io.file.buffer.size都被用来设置缓存的大小,较大的缓存可以提供高效的数据传输，但太大也会造成更大的内存消耗和延迟
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;io.file.buffer.size&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;131072&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        hadoop文件系统依赖的基本配置，很多配置路径都依赖它，它的默认位置在/tmp/{$user}下面
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;hadoop.tmp.dir&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;/home/hadoop/ocdc/hadoop-2.6.0/tmp&lt;/value&gt;
       </p>
       <p>
        &lt;description&gt;Abasefor other temporary directories.&lt;/description&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;hadoop.proxyuser.spark.hosts&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;*&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;hadoop.proxyuser.spark.groups&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;*&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
        &lt;/configuration&gt;
       </p>
       <h3>
        hdfs-site.xml
       </h3>
       <p>
       </p>
       <p>
        &lt;configuration&gt;
       </p>
       <p>
        <b>
         <strong>
         </strong>
        </b>
       </p>
       <p>
        <b>
         集群的逻辑名，要注意的是，如果为HA模式，需要与
        </b>
        <b>
         core-site.xml
        </b>
        <b>
         中的
        </b>
        <b>
         fs.defaultFS
        </b>
        <b>
         名一致
        </b>
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.nameservices&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;streamcluster&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        datanode的端口，运行tcp/ip服务器以支持块传输，默认为0.0.0.0:50010
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.datanode.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;0.0.0.0:50012&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        datanode的http服务器地址和端口
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.datanode.http.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;0.0.0.0:50077&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        datanode的rpc服务器的地址和端口, 提供进程间交互通信
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.datanode.ipc.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;0.0.0.0:50022&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        dfs.ha.namenodes.[nameservice ID]在名称服务中每一个nameNode的唯一标识符,streamcluster为之前配置的nameservice的名称,这里配置高可用，所以配置两个NN
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.ha.namenodes.streamcluster&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;nn1,nn2&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        由namenode存储元数据的目录地址
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.namenode.name.dir&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;/home/hadoop/ocdc/hadoop-2.6.0/name&lt;/value&gt;
       </p>
       <p>
        &lt;final&gt;true&lt;/final&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        由datanode存放数据块的目录列表
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.datanode.data.dir&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;/home/hadoop/ocdc/hadoop-2.6.0/data&lt;/value&gt;
       </p>
       <p>
        &lt;final&gt;true&lt;/final&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        由写操作所需要创建的最小副本数目
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.replication&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;3&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        如果是 true，则打开权限系统
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.permission&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;true&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        设置成true, 通过知道每个block所在磁盘，可以在调度cpu资源时让不同的cpu读不同的磁盘，避免查询内和查询间的IO竞争
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.datanode.hdfs-blocks-metadata.enabled&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;true&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        是否在HDFS中开启权限检查。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.permissions.enabled&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;false&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA模式下该参数为streamcluster中namenode1节点对外服务的RPC地址
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.namenode.rpc-address.streamcluster.nn1&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:8033&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA模式下该参数为streamcluster中namenode1节点对外服务的RPC地址
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.namenode.rpc-address.streamcluster.nn2&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;slave1:8033&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA模式下该参数为streamcluster中namenode1节点对外服务的HTTP地址
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.namenode.http-address.streamcluster.nn1&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:50083&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA模式下该参数为streamcluster中namenode1节点对外服务的HTTP地址
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.namenode.http-address.streamcluster.nn2&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;slave1:50083&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        设置的为journalNode的地址，Activity状态中的Namenode会将edits的Log写入JournalNode，而standby状态中的Namenode会读取这些edits log.
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.namenode.shared.edits.dir&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;qjournal://master:8489;slave1:8489;slave2:8489/streamcluster&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        JournalNode 所在节点上的一个目录，用于存放 editlog 和其他状态信息。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.journalnode.edits.dir&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;/home/hadoop/ocdc/hadoop-2.6.0/data/jn&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        journalNode RPC服务地址和端口
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.journalnode.rpc-address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;0.0.0.0:8489&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        journalNode HTTP服务地址和端口
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.journalnode.http-address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;0.0.0.0:8484&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        此参数为客户端与activity状态下的Namenode进行交互的java实现类，DFS客户端通过该类寻找当前activity的Namenode
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.client.failover.proxy.provider.streamcluster&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        使HA模式下不会同时出现两个master，不允许出现两个activity状态下的Namenode
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.ha.fencing.methods&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;shell(/bin/true)&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        SSH的超时时间设置,倘若超过此时间，则认为执行失败.
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.ha.fencing.ssh.connect-timeout&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;10000&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        指定streamcluster的两个NameNode共享edits文件目录时，使用的JournalNode集群信息
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.ha.automatic-failover.enabled&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;true&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        每个datanode任一时刻可以打开的文件数量上限。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.datanode.max.xcievers&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;4096&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        DataNode传送数据出入的最大线程数,等同于dfs.datanode.max.xcievers。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.datanode.max.transfer.threads&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;4096&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        块的字节大小
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.blocksize&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;67108864&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        一般原则是将其设置为集群大小的自然对数乘以20，即20logN, NameNode有一个工作线程池用来处理客户端的远程过程调用及集群守护进程的调用。处理程序数量越多意味着要更大的池来处理来自不同DataNode的并发心跳以及客户端并发的元数据操作。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;dfs.namenode.handler.count&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;20&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        &lt;!–指定zookeeper地址–&gt;
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;ha.zookeeper.quorum&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:2183,slave1:2183,slave2:2183&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
        &lt;/configuration&gt;
       </p>
       <p>
       </p>
       <p>
       </p>
       <h3>
        yarn-site.xml
       </h3>
       <p>
       </p>
       <p>
        &lt;configuration&gt;
       </p>
       <p>
        &lt;!– Site specific YARN configuration properties –&gt;
       </p>
       <p>
        &lt;!– Resource Manager Configs –&gt;
       </p>
       <p>
       </p>
       <p>
        NodeManager的心跳间隔
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.connect.retry-interval.ms&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;2000&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        是否启用RM HA，默认为false（不启用）。这里设置为启用。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.ha.enabled&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;true&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        是否启用自动故障转移。默认情况下，在启用HA时，启用自动故障转移。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.ha.automatic-failover.enabled&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;true&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        启用内置的自动故障转移。默认情况下，在启用HA时，启用内置的自动故障转移。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.ha.automatic-failover.embedded&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;true&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        集群的ID，确保ResourceManager不会为成为其他集群的Activity活跃状态。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.cluster-id&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;yarn-rm-cluster&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA下两个ResourceManager的逻辑名称
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.ha.rm-ids&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;rm1,rm2&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        用于标识ResourceManager,这里要注意一点，HA备用的RM的服务器需要修改为rm2
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.ha.id&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;rm1&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        启用重启ResourceManager的功能，默认为false
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.recovery.enabled&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;true&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        用于状态存储的类,可以设置为
       </p>
       <p>
        org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore，基于Hadoop文件系统的实现，这里的设置是基于ZooKeeper的实现
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.store.class&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        存储RM状态的ZooKeeper Znode全路径。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.zk.state-store.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:2183,slave1:2183,slave2:2183&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        被RM用于状态存储的ZooKeeper服务器的主机:端口号
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.zk-address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:2183,slave1:2183,slave2:2183&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        Scheduler失联等待的时间
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;5000&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        ResourceManager1的地址和端口
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.address.rm1&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:23140&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        ResourceManager1调度器地址：端口
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.scheduler.address.rm1&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:23130&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        ResourceManager 1对外web ui地址。可通过该地址在浏览器中查看集群各类信息。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.webapp.address.rm1&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:23188&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        NodeManager通过该地址向ResourceManager1汇报心跳，领取任务等的地址。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.resource-tracker.address.rm1&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:23125&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        ResourceManager 1对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.admin.address.rm1&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:23141&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.ha.admin.address.rm1&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:23142&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA ResourceManager2相关参数同上 rm1
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.address.rm2&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;slave1:23140&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA ResourceManager2相关参数同上 rm1
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.scheduler.address.rm2&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt; slave1:23130&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA ResourceManager2相关参数同上 rm1
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.webapp.address.rm2&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt; slave1:23188&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA ResourceManager2相关参数同上 rm1
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.resource-tracker.address.rm2&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt; slave1:23125&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA ResourceManager2相关参数同上 rm1
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.admin.address.rm2&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt; slave1:23141&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        HA ResourceManager2相关参数同上 rm1
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.ha.admin.address.rm2&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt; slave1:23142&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        &lt;!– Node Manager Configs –&gt;
       </p>
       <p>
        localizer IPC
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.nodemanager.localizer.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;0.0.0.0:23344&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        http服务端口
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.nodemanager.webapp.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;0.0.0.0:23999&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        通过该配置，用户可以自定义一些服务，例如Map-Reduce的shuffle功能就是采用这种方式实现的,可运行mapReduce程序
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.nodemanager.aux-services&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;mapreduce_shuffle&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        之前定义了为mapreduce_shuffle，那么相对应属性的类就定义为org.apache.hadoop.mapred.ShuffleHandle
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.nodemanager.aux-services.mapreduce_shuffle.class&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;org.apache.hadoop.mapred.ShuffleHandler&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        NodeManager会通过参数yarn.nodemanager.local-dirs配置一系列目录（磁盘），用于存储Application中间结果（比如MapReduce中Map Task的中间输出结果）
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.nodemanager.local-dirs&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt; /home/hadoop/ocdc/hadoop-2.6.0/data/yarn/local&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        同上NodeManager配置的日志文件
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.nodemanager.log-dirs&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt; /home/hadoop/ocdc/hadoop-2.6.0/data/yarn/log&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        MapReduce JobHistory Server Web UI地址。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;mapreduce.jobhistory.webapp.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;0.0.0.0:12345&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        每个节点可用的最大内存，RM中的两个值不应该超过此值。此数值可以用于计算container最大数目，即：用此值除以RM中的最小容器内存。虚拟内存率，是占task所用内存的百分比，默认值为2.1倍;注意：第一个参数是不可修改的，一旦设置，整个运行过程中不可动态修改，且该值的默认大小是8G，即使计算机内存不足8G也会按着8G内存来使用。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.nodemanager.vmem-pmem-ratio&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;2.4&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        每个节点可用的内存，单位为MB
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.nodemanager.resource.memory-mb&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;16384&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        单个任务可申请的最大内存，默认为8192MB
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.scheduler.maximum-allocation-mb&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;16384&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        启用的资源调度器主类。目前可用的有FIFO、Capacity Scheduler和Fair Scheduler。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.resourcemanager.scheduler.class&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        为applications配置相应的ClassPath
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;yarn.application.classpath&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;
       </p>
       <p>
        $HADOOP_CONF_DIR,
       </p>
       <p>
        $HADOOP_COMMON_HOME/share/hadoop/common/*,
       </p>
       <p>
        $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,
       </p>
       <p>
        $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,
       </p>
       <p>
        $HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,
       </p>
       <p>
        $HADOOP_YARN_HOME/share/hadoop/yarn/*,
       </p>
       <p>
        $HADOOP_YARN_HOME/share/hadoop/yarn/lib/*
       </p>
       <p>
        &lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
        &lt;/configuration&gt;
       </p>
       <p>
       </p>
       <p>
       </p>
       <h3>
        mapred-site.xml
       </h3>
       <p>
       </p>
       <p>
        &lt;configuration&gt;
       </p>
       <p>
        配置引擎为yarn,如果要配置Tez则改为yarn-tez. 其中的奥妙在于使用了JDK6+的一个特性ServiceLoader类。其为JDK实现了一个依赖注入的机制。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;mapreduce.framework.name&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;yarn&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        mapreduce.jobhistory.webapp.address和mapreduce.jobhistory.address参数配置的主机上对Hadoop历史作业情况经行查看。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;mapreduce.jobhistory.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:10020&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        mapreduce.jobhistory.webapp.address和mapreduce.jobhistory.address参数配置的主机上对Hadoop历史作业情况经行查看。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;mapreduce.jobhistory.webapp.address&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;master:19888&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
       </p>
       <p>
        指定压缩类型，默认是RECORD类型，它会按单个的record压缩，如果指定为BLOCK类型，它将一组record压缩，压缩效果自然是BLOCK好。
       </p>
       <p>
        &lt;property&gt;
       </p>
       <p>
        &lt;name&gt;mapred.output.compression.type&lt;/name&gt;
       </p>
       <p>
        &lt;value&gt;BLOCK&lt;/value&gt;
       </p>
       <p>
        &lt;/property&gt;
       </p>
       <p>
        &lt;/configuration&gt;
       </p>
       <p>
       </p>
       <p>
       </p>
       <h3>
        slaves
       </h3>
       <p>
        vi slaves
       </p>
       <p>
       </p>
       <p>
        master1
       </p>
       <p>
        slave1
       </p>
       <p>
        slave2
       </p>
       <p>
       </p>
       <p>
        随后将拷贝配置好的hadoop到各个服务器中
       </p>
       <p>
       </p>
       <p>
       </p>
       <h2>
        九、启动Hadoop各组件
       </h2>
       <p>
        启动jounalnode
       </p>
       <p>
        ./hadoop-daemon.sh start journalnode
       </p>
       <p>
        进行namenode格式化
       </p>
       <p>
        ./hadoop namenode -format
       </p>
       <p>
       </p>
       <p>
        格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件，之后通过下面命令，启动namenode进程在namenode2上执行
       </p>
       <p>
        sbin/hadoop-daemon.sh start namenode
       </p>
       <p>
       </p>
       <p>
        完成主备节点同步信息
       </p>
       <p>
        ./hdfs namenode –bootstrapStandby
       </p>
       <p>
       </p>
       <p>
        格式化ZK(在namenode1上执行即可, 这句命令必须手工打上，否则会报错)
       </p>
       <p>
        ./hdfs zkfc –formatZK
       </p>
       <p>
       </p>
       <p>
        启动HDFS(在namenode1上执行)
       </p>
       <p>
        ./start-dfs.sh
       </p>
       <p>
       </p>
       <p>
        启动YARN(在namenode1和namenode2上执行)
       </p>
       <p>
        ./start-yarn.sh
       </p>
       <p>
       </p>
       <p>
        在namenode1上执行${HADOOP_HOME}/bin/yarn rmadmin -getServiceState rm1查看rm1和rm2分别为active和standby状态
       </p>
       <p>
       </p>
       <p>
       </p>
       <p>
        我们在启动hadoop各个节点时，启动namenode和datanode，这个时候如果datanode的storageID不一样，那么会导致如下datanode注册不成功的信息：
       </p>
       <p>
        这个时候，我们需要修改指定的datanode的current文件中的相应storageID的值，直接把它删除，这个时候，系统会动态新生成一个storageID，这样再次启动时就不会发生错误了。
       </p>
       <p>
        查看端口是否占用
       </p>
       <p>
        Netstat-tunlp |grep 22
       </p>
       <p>
        查看所有端口
       </p>
       <p>
        Netstat -anplut
       </p>
       <h1>
        十、spark搭建与参数解析
       </h1>
       <p>
        修改spark-env..sh 增加如下参数(路径根据服务器上的路径修改)
       </p>
       <p>
       </p>
       <p>
        HADOOP_CONF_DIR=/home/hadoop/ocdc/hadoop-2.6.0/etc/hadoop/
       </p>
       <p>
        HADOOP_HOME=/home/hadoop/ocdc/hadoop-2.6.0/
       </p>
       <p>
        SPARK_HOME=/home/hadoop/ocdc/spark-1.6.1-bin-hadoop2.6/
       </p>
       <p>
       </p>
       <p>
        该参数决定了yarn集群中，最多能够同时启动的EXECUTOR的实例个数。
       </p>
       <p>
        SPARK_EXECUTOR_INSTANCES=3
       </p>
       <p>
       </p>
       <p>
        设置每个EXECUTOR能够使用的CPU core的数量。
       </p>
       <p>
        SPARK_EXECUTOR_CORES=7
       </p>
       <p>
       </p>
       <p>
        该参数设置的是每个EXECUTOR分配的内存的数量
       </p>
       <p>
        SPARK_EXECUTOR_MEMORY=11G
       </p>
       <p>
       </p>
       <p>
        该参数设置的是DRIVER分配的内存的大小
       </p>
       <p>
        SPARK_DRIVER_MEMORY=11G
       </p>
       <p>
       </p>
       <p>
        Spark Application在Yarn中的名字
       </p>
       <p>
        SPARK_YARN_APP_NAME=”asiainfo.Spark-1.6.0″
       </p>
       <p>
       </p>
       <p>
        指定在yarn中执行，提交方式为client
       </p>
       <p>
        MASTER=yarn-cluster
       </p>
       <p>
       </p>
       <p>
       </p>
       <p>
        修改spark-default.conf文件 (路径根据服务器上的路径修改)
       </p>
       <p>
       </p>
       <p>
        如果没有适合当前本地性要求的任务可供运行，将跑得慢的任务在空闲计算资源上再度调度的行为,这个参数会引发一些tmp文件被删除的问题，一般设置为false
       </p>
       <p>
        spark.speculation        false
       </p>
       <p>
       </p>
       <p>
        如果设置为true,前台用jdbc方式连接，显示的会是乱码
       </p>
       <p>
        spark.sql.hive.convertMetastoreParquet  false
       </p>
       <p>
       </p>
       <p>
        应用程序上载到HDFS的复制份数
       </p>
       <p>
        spark.yarn.submit.file.replication 3
       </p>
       <p>
       </p>
       <p>
        Spark application master给YARN ResourceManager 发送心跳的时间间隔（ms）
       </p>
       <p>
        spark.yarn.scheduler.heartbeat.interal-ms
        <b>
        </b>
        5000
       </p>
       <p>
       </p>
       <p>
        仅适用于HashShuffleMananger的实现，同样是为了解决生成过多文件的问题，采用的方式是在不同批次运行的Map任务之间重用Shuffle输出文件，也就是说合并的是不同批次的Map任务的输出数据，但是每个Map任务所需要的文件还是取决于Reduce分区的数量，因此，它并不减少同时打开的输出文件的数量，因此对内存使用量的减少并没有帮助。只是HashShuffleManager里的一个折中的解决方案。
       </p>
       <p>
        spark.shuffle.consolidateFiles  true
       </p>
       <p>
       </p>
       <p>
        用来调整cache所占用的内存大小。默认为0.6。如果频繁发生Full GC，可以考虑降低这个比值，这样RDD Cache可用的内存空间减少（剩下的部分Cache数据就需要通过Disk Store写到磁盘上了），会带来一定的性能损失，但是腾出更多的内存空间用于执行任务，减少Full GC发生的次数，反而可能改善程序运行的整体性能。这要看你的具体业务逻辑，是cache的多还是计算的多。
       </p>
       <p>
        spark.storage.memoryFraction
        <b>
         0.3
        </b>
       </p>
       <p>
       </p>
       <p>
        一个partition对应着一个task,如果数据量过大，可以调整次参数来减少每个task所需消耗的内存.
       </p>
       <p>
        spark.sql.shuffle.partitions 800
       </p>
       <p>
       </p>
       <p>
        Spark SQL在每次执行次，先把SQL查询编译JAVA字节码。针对执行时间长的SQL查询或频繁执行的SQL查询，此配置能加快查询速度，因为它产生特殊的字节码去执行。但是针对很短的查询，可能会增加开销，因为它必须先编译每一个查询
       </p>
       <p>
        spark.sql.codegen true
       </p>
       <p>
       </p>
       <p>
        我们都知道shuffle默认情况下的文件数据为map tasks * reduce tasks,通过设置其为true,可以使spark合并shuffle的中间文件为reduce的tasks数目。
       </p>
       <p>
        spark.shuffle.consolidateFiles true
       </p>
       <p>
       </p>
       <p>
        相关jar包的加载地址
       </p>
       <p>
        spark.driver.extraClassPath /home/hadoop/ocdc/spark-1.6.1-bin-hadoop2.6/lib/mysql-connector-java-5.1.30-bin.jar:/home/hadoop/ocdc/spark-1.6.1-bin-hadoop2.6/lib/datanucleus-api-jdo-3.2.6.jar:/home/hadoop/ocdc/spark-1.6.1-bin-hadoop2.6/lib
       </p>
       <p>
        /datanucleus-core-3.2.10.jar:/home/hadoop/ocdc/spark-1.6.1-bin-hadoop2.6/lib/datanucleus-rdbms-3.2.9.jar:/home/hadoop/ocdc/spark-1.6.1-bin-hadoop2.6/lib/ojdbc14-10.2.0.3.jar
       </p>
       <p>
       </p>
       <p>
       </p>
       <p>
       </p>
       <p>
        最终：
       </p>
       <p>
        <img src="http://dataunion.org/wp-content/uploads/2016/04/viewfile.jpg"/>
       </p>
       <p>
        Hadoop监控页面(根据yarn-site.xml的参数yarn.resourcemanager.webapp.address.rm1中配置的端口决定的):
       </p>
       <p>
        http://10.1.245.244: 23188
       </p>
       <p>
        <img src="http://dataunion.org/wp-content/uploads/2016/04/viewfile-1.jpg"/>
       </p>
       <p>
        Hadoop namenode监控页面( 根据hdfs-site.xml中配置的参数
       </p>
       <p>
        dfs.namenode.http-address.streamcluster.nn1中的端口决定):
       </p>
       <p>
        http://10.1.245.244: 50083
       </p>
       <p>
        <img src="http://dataunion.org/wp-content/uploads/2016/04/viewfile-2.jpg"/>
       </p>
       <p>
       </p>
       <p>
        <b>
         spark thriftserver注册启动:
        </b>
       </p>
       <p>
        <img src="http://dataunion.org/wp-content/uploads/2016/04/viewfile-3.jpg"/>
       </p>
      </div>
      <div>
       <strong>
        注：转载文章均来自于公开网络，仅供学习使用，不会用于任何商业用途，如果侵犯到原作者的权益，请您与我们联系删除或者授权事宜，联系邮箱：contact@dataunion.org。转载数盟网站文章请注明原文章作者，否则产生的任何版权纠纷与数盟无关。
       </strong>
      </div>
      <!--content_text-->
      <div class="fenxian">
       <!-- JiaThis Button BEGIN -->
       <div class="jiathis_style_32x32">
        <p class="jiathis_button_weixin">
        </p>
        <p class="jiathis_button_tsina">
        </p>
        <p class="jiathis_button_qzone">
        </p>
        <p class="jiathis_button_cqq">
        </p>
        <p class="jiathis_button_tumblr">
        </p>
        <a class="jiathis jiathis_txt jtico jtico_jiathis" href="http://www.jiathis.com/share" target="_blank">
        </a>
        <p class="jiathis_counter_style">
        </p>
       </div>
       <!-- JiaThis Button END -->
      </div>
     </article>
     <!--content-->
     <!--相关文章-->
     <div class="xianguan">
      <div class="xianguantitle">
       相关文章！
      </div>
      <ul class="pic">
       <li>
        <a href="http://dataunion.org/24678.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/20140917125452915416-216x200.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24678.html" rel="bookmark" title="python3中的正则模块">
         python3中的正则模块
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24675.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/t015b337bd75d9ef893-161x200.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24675.html" rel="bookmark" title="注释是恶魔，请不要再写一行注释">
         注释是恶魔，请不要再写一行注释
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24660.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/u16130037972892789947fm21gp0-300x157.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24660.html" rel="bookmark" title="如何从Github上轻松安装R包">
         如何从Github上轻松安装R包
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24654.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/df53fac99fc53ba5a90666abcca25e6d_b-267x200.png"/>
        </a>
        <a class="link" href="http://dataunion.org/24654.html" rel="bookmark" title="简单形象又有趣地说说强大的神经网络">
         简单形象又有趣地说说强大的神经网络
        </a>
       </li>
      </ul>
     </div>
     <!--相关文章-->
     <div class="comment" id="comments">
      <!-- You can start editing here. -->
      <!-- If comments are open, but there are no comments. -->
      <div class="title">
       期待你一针见血的评论，Come on！
      </div>
      <div id="respond">
       <p>
        不用想啦，马上
        <a href="http://dataunion.org/wp-login.php?redirect_to=http%3A%2F%2Fdataunion.org%2F23402.html">
         "登录"
        </a>
        发表自已的想法.
       </p>
      </div>
     </div>
     <!-- .nav-single -->
    </div>
    <!--Container End-->
    <aside id="sitebar">
     <div class="sitebar_list2">
      <div class="wptag">
       <span class="tagtitle">
        热门标签+
       </span>
       <div class="tagg">
        <ul class="menu" id="menu-%e5%8f%8b%e6%83%85%e9%93%be%e6%8e%a5">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1605" id="menu-item-1605">
          <a href="http://taidizh.com/">
           泰迪智慧
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20884" id="menu-item-20884">
          <a href="http://www.transwarp.cn/">
           星环科技
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3538" id="menu-item-3538">
          <a href="http://datall.org/">
           珈和遥感
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20888" id="menu-item-20888">
          <a href="http://www.chinahadoop.cn/">
           小象学院
          </a>
         </li>
        </ul>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <div class="textwidget">
       <div align="center">
        <a href="http://study.163.com/course/courseMain.htm?courseId=991022" target="_blank">
         <img src="http://dataunion.org/wp-content/uploads/2016/03/dv.jpg"/>
        </a>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       文章分类
      </h4>
      <div class="tagcloud">
       <a class="tag-link-44" href="http://dataunion.org/category/industry/demo" style="font-size: 10.204724409449pt;" title="4个话题">
        Demo展示
       </a>
       <a class="tag-link-31" href="http://dataunion.org/category/experts" style="font-size: 15.826771653543pt;" title="52个话题">
        专家团队
       </a>
       <a class="tag-link-870" href="http://dataunion.org/category/tech/ai" style="font-size: 19.795275590551pt;" title="273个话题">
        人工智能
       </a>
       <a class="tag-link-488" href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f" style="font-size: 8pt;" title="1个话题">
        加入数盟
       </a>
       <a class="tag-link-869" href="http://dataunion.org/category/tech/viz" style="font-size: 17.204724409449pt;" title="93个话题">
        可视化
       </a>
       <a class="tag-link-30" href="http://dataunion.org/category/partners" style="font-size: 10.645669291339pt;" title="5个话题">
        合作伙伴
       </a>
       <a class="tag-link-889" href="http://dataunion.org/category/parterc" style="font-size: 11.582677165354pt;" title="8个话题">
        合作会议
       </a>
       <a class="tag-link-104" href="http://dataunion.org/category/books" style="font-size: 12.96062992126pt;" title="15个话题">
        图书
       </a>
       <a class="tag-link-220" href="http://dataunion.org/category/tech/base" style="font-size: 19.850393700787pt;" title="281个话题">
        基础架构
       </a>
       <a class="tag-link-219" href="http://dataunion.org/category/tech/analysis" style="font-size: 19.409448818898pt;" title="232个话题">
        数据分析
       </a>
       <a class="tag-link-887" href="http://dataunion.org/category/tech/dm" style="font-size: 13.291338582677pt;" title="17个话题">
        数据挖掘
       </a>
       <a class="tag-link-34" href="http://dataunion.org/category/tech" style="font-size: 20.732283464567pt;" title="404个话题">
        文章
       </a>
       <a class="tag-link-1" href="http://dataunion.org/category/uncategorized" style="font-size: 22pt;" title="693个话题">
        未分类
       </a>
       <a class="tag-link-4" href="http://dataunion.org/category/events" style="font-size: 14.503937007874pt;" title="29个话题">
        活动
       </a>
       <a class="tag-link-890" href="http://dataunion.org/category/tech/%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0" style="font-size: 10.204724409449pt;" title="4个话题">
        深度学习
       </a>
       <a class="tag-link-221" href="http://dataunion.org/category/tech/devl" style="font-size: 18.968503937008pt;" title="193个话题">
        编程语言
       </a>
       <a class="tag-link-888" href="http://dataunion.org/category/career" style="font-size: 15.661417322835pt;" title="48个话题">
        职业规划
       </a>
       <a class="tag-link-5" href="http://dataunion.org/category/jobs" style="font-size: 14.11811023622pt;" title="25个话题">
        职位
       </a>
       <a class="tag-link-871" href="http://dataunion.org/category/industry" style="font-size: 15.716535433071pt;" title="49个话题">
        行业
       </a>
       <a class="tag-link-613" href="http://dataunion.org/category/industry/case" style="font-size: 16.984251968504pt;" title="84个话题">
        行业应用
       </a>
       <a class="tag-link-885" href="http://dataunion.org/category/industry/news" style="font-size: 17.425196850394pt;" title="102个话题">
        行业资讯
       </a>
       <a class="tag-link-10" href="http://dataunion.org/category/training" style="font-size: 14.228346456693pt;" title="26个话题">
        课程
       </a>
       <a class="tag-link-16" href="http://dataunion.org/category/sources" style="font-size: 15.661417322835pt;" title="48个话题">
        资源
       </a>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       功能
      </h4>
      <ul>
       <li>
        <a href="http://dataunion.org/wp-login.php?action=register">
         注册
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/wp-login.php">
         登录
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/feed">
         文章
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/comments/feed">
         评论
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="https://cn.wordpress.org/" title="基于WordPress，一个优美、先进的个人信息发布平台。">
         WordPress.org
        </a>
       </li>
      </ul>
     </div>
    </aside>
    <div class="clear">
    </div>
   </div>
   <!--main-->
   ﻿
   <footer id="dibu">
    <div class="about">
     <div class="right">
      <ul class="menu" id="menu-%e5%ba%95%e9%83%a8%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18024" id="menu-item-18024">
        <a href="http://dataunion.org/category/partners">
         合作伙伴
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20881" id="menu-item-20881">
        <a href="http://dataunion.org/contribute">
         文章投稿
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20872" id="menu-item-20872">
        <a href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f">
         加入数盟
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22441" id="menu-item-22441">
        <a href="http://dataunion.org/f-links">
         友情链接
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20874" id="menu-item-20874">
        <a href="http://dataunion.org/aboutus">
         关于数盟
        </a>
       </li>
      </ul>
      <p class="banquan">
       数盟社区        ，
        做最棒的数据科学社区
      </p>
     </div>
     <div class="left">
      <ul class="bottomlist">
       <li>
        <a href="http://weibo.com/DataScientistUnion  " target="_blank" 　title="">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weibo.png"/>
        </a>
       </li>
       <li>
        <a class="cd-popup-trigger" href="http://dataunion.org/23402.html#0">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weixin.png"/>
        </a>
       </li>
      </ul>
      <div class="cd-popup">
       <div class="cd-popup-container">
        <h1>
         扫描二维码,加微信公众号
        </h1>
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/2014-12-06-1515289049.png"/>
        <a class="cd-popup-close" href="http://dataunion.org/23402.html">
        </a>
       </div>
       <!-- cd-popup-container -->
      </div>
      <!-- cd-popup -->
     </div>
    </div>
    <!--about-->
    <div class="bottom">
     <a href="http://dataunion.org/">
      数盟社区
     </a>
     <a href="http://www.miitbeian.gov.cn/" rel="external nofollow" target="_blank">
      京ICP备14026740号
     </a>
     联系我们：
     <a href="mailto:contact@dataunion.org" target="_blank">
      contact@dataunion.org
     </a>
     <div class="tongji">
     </div>
     <!--bottom-->
     <div class="scroll" id="scroll" style="display:none;">
      ︿
     </div>
    </div>
   </footer>
   <!--dibu-->
  </div>
 </body>
</html>